"""
邢不行 | 2023分享会
author: 邢不行
微信: xbx6660
"""
import warnings

from program.function import *

warnings.filterwarnings('ignore')

_ = os.path.abspath(os.path.dirname(__file__))  # 返回当前文件路径
root_path = os.path.abspath(os.path.join(_, '../'))  # 返回根目录文件夹
# =====需要配置的参数
start = '2020-06-01'  # 资金曲线开始时间
end = '2023-07-10'  # 资金曲线结束时间
period = '1H'  # 回测的周期
equity_path = 'D:/Code/2023分享会保温杯中性策略回测_v2/data/回测结果/'  # 回测文件存放的路径

# 下面的东西不需要修改
df = pd.DataFrame(pd.date_range(start, end, freq=period), columns=['candle_begin_time'])  # 生成时序数据，作为合并的基本
left_dict = {}  # 左轴需要绘制的数据集合（净值曲线）
right_dict = {}  # 右轴需要绘制的数据合集（最大回撤）

# =====读取数据

# 加载流动性因子的数据
df, left_dict, right_dict = load_curve(df, equity_path + "[('ILLQ', True, 24, 0.5)]_资金曲线_1H_0.csv",
                                       {'本周期多空涨跌幅': 'ILLQ'}, left_dict, right_dict, max_draw_down=True)
# 加载低价币的数据
df, left_dict, right_dict = load_curve(df, equity_path + "[('LowPrice', True, 24, 0.5)]_资金曲线_1H_0.csv",
                                       {'本周期多空涨跌幅': 'LowPrice'}, left_dict, right_dict, max_draw_down=True)


"""
还可以利用load_curve添加上其他资金曲线的数据。

细心的老板可能会有疑问，为什么不for循环调用load_curve？
详细原因我会在直播中讲解。
"""

# =====绘制图片
draw_curves_plotly(df.copy(), left_dict, 'candle_begin_time', right_dict, pic_size=[2000, 800])
